perm filename DESTRU.TIM[TIM,LSP]14 blob sn#768061 filedate 1984-09-12 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00022 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	 SAIL
C00006 00003	DESTRU
C00007 00004	 DESTRU
C00008 00005	 NIL
C00009 00006	∂09-Oct-83  0957	jkf@ucbkim 	destru  
C00018 00007	 SCORE Oct 18, 1983
C00019 00008	 DEC780CL
C00020 00009	 InterLisp Vax 780
C00021 00010	 PSL-20 3.3
C00022 00011	 PSL-Cray 3.2
C00024 00012	 PSL-750 3.2
C00025 00013	 PSL-780 3.2
C00026 00014	 PSL-DN600 3.2
C00027 00015	 PSL-DN300 3.2
C00028 00016	 PSL-dn160
C00029 00017	∂21-May-84  2120	EJG  	smaller and better DESTRUCTIVE timings 
C00031 00018	 PERQ 6/18/84
C00032 00019	 PSL Numbers 7/31/84
C00033 00020	 LMI/Tyson 15-Aug-84  1920
C00034 00021	 PSL-3081
C00035 00022	 3600 Sept 12, 1984
C00036 ENDMK
C⊗;
;;; SAIL
(FASLOAD DESTRU)
(TIMIT)
Timing performed on Thursday 09/23/82 at 14:51:40.
Cpu Time = 2.472
Elapsed Time = 28.2666667
Wholine Time = 14.3
GC Time = 5.795
Load Average Before  = 1.25672555
Load Average After   = 1.73288608
Average Load Average = 1.49480581
NIL 
Timing performed on Thursday 09/23/82 at 14:52:11.
Cpu Time = 2.47
Elapsed Time = 36.883333
Wholine Time = 12.9333333
GC Time = 5.387
Load Average Before  = 1.74602473
Load Average After   = 1.88764822
Average Load Average = 1.81683648
NIL 
Timing performed on Thursday 09/23/82 at 14:52:51.
Cpu Time = 2.47
Elapsed Time = 36.0333333
Wholine Time = 13.1666666
GC Time = 5.401
Load Average Before  = 1.899001
Load Average After   = 2.04023933
Average Load Average = 1.96962017
NIL 

;;; New CPU
(timit)
Timing performed on Wednesday 10/12/83 at 21:03:14.
Cpu (- GC) Time = 2.159
Elapsed Time = 14.5
Wholine Time = 8.4333333
GC Time = 5.378
Load Average Before  = 0.209593892
Load Average After   = 0.29597497
Average Load Average = 0.25278443
NIL 
Timing performed on Wednesday 10/12/83 at 21:03:35.
Cpu (- GC) Time = 2.159
Elapsed Time = 20.0666666
Wholine Time = 9.4333333
GC Time = 5.385
Load Average Before  = 0.295405984
Load Average After   = 0.485271096
Average Load Average = 0.39033854
NIL 
Timing performed on Wednesday 10/12/83 at 21:04:12.
Cpu (- GC) Time = 2.158
Elapsed Time = 14.15
Wholine Time = 11.4
GC Time = 5.385
Load Average Before  = 0.448821545
Load Average After   = 0.5322814
Average Load Average = 0.49055147
NIL 
;;DESTRU

D3
No RPLCONS (push instead)
Elapsed	7.19
GC	3.41
CPU	3.77

With RPLCONS
Elapsed	9.02
GC	3.32
CPU	5.7

;;; DESTRU

D2
No RPLCONS (push instead)
Elapsed	38.2
GC	9.31
CPU	28.9

Elapsed	37.7
GC	9.04
CPU	28.7

With RPLCONS
Elapsed	35.3
GC	8.04
CPU	27.2

Elapsed	35.1
GC	8.17
CPU	26.9

Elapsed	35.0
GC	7.97
CPU	27.0

D1
1/25/84 with interrupts
Elapsed	26.85
CPU	17.6
GC	 9.27
;;; NIL

DESTRU

Fixnum arithmetic, as always.
Curio:  NCONC uses LAST which does error and circularity checking.

cpu=14.65,elapsed=15.14,pagefaults=749
cpu=14.5,elapsed=14.68,pagefaults=724
cpu=14.6,elapsed=14.74,pagefaults=722

Inline carcdr:
cpu=9.09,elapsed=10.01,pagefaults=738
cpu=8.95,elapsed=8.96,pagefaults=734
cpu=9.02,elapsed=9.15,pagefaults=712

Another curio:  Use of SETF instead of RPLACA/D would result in
infinitessimally better code because of the different return value.
Not bothering to try this.
∂09-Oct-83  0957	jkf@ucbkim 	destru  
Received: from UCBKIM by SU-AI with TCP/SMTP; 9 Oct 83  09:56:55 PDT
Received: by ucbkim.ARPA (4.6/4.2)
	id AA17828; Sun, 9 Oct 83 10:00:19 PDT
Date: Sun, 9 Oct 83 10:00:19 PDT
From: John Foderaro (on an h19-u) <jkf@ucbkim>
Message-Id: <8310091700.AA17828@ucbkim.ARPA>
To: rpg@su-ai
Subject: destru
Cc: 

--- Benchmark destru run on ucbkim at Sat Oct 8 01:22:39 PDT 1983 by jkf
--- cpu usage: 1:22am up 1:53, 4 users, load average: 1.32, 1.38, 1.37
Franz Lisp, Opus 38.81

=> [fasl destru.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (49 176)
end (765 583)
runs 1
avg cpu time 5.15, avg gc time 6.783333333333333

benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (766 583)
end (1589 989)
runs 1
avg cpu time 6.95, avg gc time 6.766666666666667

nil
=> Franz Lisp, Opus 38.81

=> [fasl destru-l.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (43 173)
end (753 571)
runs 1
avg cpu time 5.2, avg gc time 6.633333333333333

benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (754 571)
end (1574 973)
runs 1
avg cpu time 6.966666666666667, avg gc time 6.7

nil
=> Franz Lisp, Opus 38.81

=> [load destru.l]
[fasl benchmac.o]
t
=> benchmark: test (file destru) , tranlinks: on, interpreted 
executing form: (destructive 600 50)
begin (66 177)
end (9984 607)
runs 1
avg cpu time 158.1333333333333, avg gc time 7.166666666666667

benchmark: test (file destru) , tranlinks: off, interpreted 
executing form: (destructive 600 50)
begin (9987 607)
end (19864 1006)
runs 1
avg cpu time 157.9666666666667, avg gc time 6.65

nil
=> --- cpu usage: 1:30am up 2 hrs, 4 users, load average: 1.28, 1.22, 1.29
--- end of benchmark destru


--- Benchmark destru run on ucbmatisse at Fri Oct 7 10:59:38 PDT 1983 by jkf
--- cpu usage: 10:59am up 3 days, 22:45, 2 users, load average: 1.00, 1.04, 1.09
Franz Lisp, Opus 38.81

=> [fasl destru.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (118 197)
end (1056 614)
runs 1
avg cpu time 8.683333333333333, avg gc time 6.95

benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (1059 614)
end (2179 1073)
runs 1
avg cpu time 11.01666666666667, avg gc time 7.65

nil
=> Franz Lisp, Opus 38.81

=> [fasl destru-l.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (118 195)
end (1060 609)
runs 1
avg cpu time 8.8, avg gc time 6.9

benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (1062 609)
end (2209 1072)
runs 1
avg cpu time 11.4, avg gc time 7.716666666666667

nil
=> Franz Lisp, Opus 38.81

=> [load destru.l]
[fasl benchmac.o]
t
=> benchmark: test (file destru) , tranlinks: on, interpreted 
executing form: (destructive 600 50)
begin (143 201)
end (16300 702)
runs 1
avg cpu time 260.9333333333333, avg gc time 8.35

benchmark: test (file destru) , tranlinks: off, interpreted 
executing form: (destructive 600 50)
begin (16304 702)
end (32406 1254)
runs 1
avg cpu time 259.1666666666667, avg gc time 9.2

nil
=> --- cpu usage: 11:11am up 3 days, 22:57, 3 users, load average: 1.05, 1.16, 1.15
--- end of benchmark destru

--- Benchmark destru run on ucbmike at Fri Oct 7 12:05:16 PDT 1983 by jkf
--- cpu usage: 12:05pm up 2:37, 0 users, load average: 1.08, 1.06, 1.06
Franz Lisp, Opus 38.79
-> [fasl destru.o]
t
-> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (89 322)
end (1469 863)
runs 1
avg cpu time 13.98333333333333, avg gc time 9.016666666666667

benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (1473 863)
end (3164 1406)
runs 1
avg cpu time 19.13333333333333, avg gc time 9.050000000000001

nil
-> Franz Lisp, Opus 38.79
-> [fasl destru-l.o]
t
-> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (88 324)
end (1471 866)
runs 1
avg cpu time 14.01666666666667, avg gc time 9.033333333333333

benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (1475 866)
end (3167 1409)
runs 1
avg cpu time 19.15, avg gc time 9.050000000000001

nil
-> Franz Lisp, Opus 38.79
-> [load destru.l]
[fasl benchmac.o]
t
-> benchmark: test (file destru) , tranlinks: on, interpreted 
executing form: (destructive 600 50)
begin (120 328)
end (19517 904)
runs 1
avg cpu time 313.6833333333333, avg gc time 9.6

benchmark: test (file destru) , tranlinks: off, interpreted 
executing form: (destructive 600 50)
begin (19525 904)
end (38990 1556)
runs 1
avg cpu time 313.55, avg gc time 10.86666666666667

nil
-> --- cpu usage: 12:19pm up 2:51, 0 users, load average: 1.01, 1.03, 1.04
--- end of benchmark destru


;;; SCORE Oct 18, 1983

LISP
LOAD(DESTRU.IL)
MAKEFILE(DESTRUCTIVE)
BCOMPL(DESTRUCTIVE)
ST
(TIME (DESTRUCTIVE 600 50) 1 3)
(TIME (DESTRUCTIVE 600 50) 1 3)

collecting lists
10381, 10381 free cells

collecting lists
10521, 10521 free cells

collecting lists
10521, 10521 free cells

collecting lists
10521, 10521 free cells
43105 conses
9.206 seconds
1.427 seconds, garbage collection time
((1 1 2) (1 1 1) (1 1 1 2) (1 1 1 1) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 2)
 (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3))
←

;;; DEC780CL

	cpu + probability x gc
DESTRU	7.7 + 0.2 x 16

*************************************************************************
Name of		VAXLisp		VAXLisp		VAXLisp		VAXLisp
application	U1.0-20		U1.0-20		U1.0-20		U1.0-20
Benchmark	VMS V3.5	VMS V3.5	VMS V3.5	VMS V3.6
		730 (No FPA)	750 (No FPA)	780		785 (No FPA)
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

Destru		26.41		11.30		6.38		4.35

;;; InterLisp Vax 780

DESTRUCTIVE:
←(TIME (DESTRUCTIVE 600 50]
43110 conses
18.304 seconds
((1 1 2) (1 1 1) (1 1 1 2) (1 1 1 1) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 
1 2) (1 1 1 1 2) (1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3))

←LOAD(DESTRUCTIVE.V]
compiled on 15-AUG-84 10:17:55
File Created:15-AUG-84 09:37:41
DESTRUCTIVECOMS
/lisp/rbates/lisp/dick/DESTRUCTIVE.V;2
←(TIME (DESTRUCTIVE 600 50]
43110 conses
5.44 seconds
((1 1 2) (1 1 1) (1 1 1 2) (1 1 1 1) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 
1 2) (1 1 1 1 2) (1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3))
;;; PSL-20 3.3

`Destructive' Test
Timing performed on DEC-20
23-Mar-84 05:06:02 .
........................................
Cpu (- GC) Time = 2.381 secs
Elapsed Time = 2.0 secs
GC Time = 0.0 secs
Load Average Before  = 1.1
Load Average After   = 1.1
Average Load Average = 1.1
;;; PSL-Cray 3.2
;;; Times are in milliseconds

 08:27:55 004:05.339 `Destructive' Test
 08:28:05 004:07.958 Cpu (- GC) Time = 451.72600000 secs$2 π
 08:28:07 004:08.479 Elapsed Time = 0. secs    
 08:28:09 004:08.999 GC Time = 0. secs 
 08:28:10 004:09.519 Load Average Before  = 0  
 08:28:12 004:10.039 Load Average After   = 0  
 08:28:15 004:10.560 Average Load Average = 0. 

`Destructive' Test
Timing performed on CRAY  
23-apr-84 12:00:00.       
........................................  
Cpu (- GC) Time = 445.91300000 secs       
Elapsed Time = 0. secs    
GC Time = 0. secs 
Load Average Before  = 0  
Load Average After   = 0  
Average Load Average = 0. 
;;; PSL-750 3.2

Cpu (- GC) Time = 7.225 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before  = 0
Load Average After   = 0
Average Load Average = 0.0
;;; PSL-780 3.2

Cpu (- GC) Time = 3.876 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before  = 0
Load Average After   = 0
Average Load Average = 0.0
;;; PSL-DN600 3.2

Cpu (- GC) Time = 10.591 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before  = 0
Load Average After   = 0
Average Load Average = 0.0
;;; PSL-DN300 3.2

Cpu (- GC) Time = 10.161 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before  = 0
Load Average After   = 0
Average Load Average = 0.0
;;; PSL-dn160

`Destructive' Test
Timing performed on Apollo
today 12:00:00.
........................................
Cpu (- GC) Time = 7.4299999 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before  = 0
Load Average After   = 0
Average Load Average = 0.0
∂21-May-84  2120	EJG  	smaller and better DESTRUCTIVE timings 
So, I threw (DESTRUCTIVE 600 50) into a ten-iteration DO loop and
compiled it.  With allocation still happening (now allocating 16
segmentitos at a time, thanks to Rod), and even with 3 or 4 allocation
messages printing (turned 'em back on), I get a wallclock time
of 1.0 seconds per iteration!

∂22-May-84  1152	EJG@S1-A.ARPA 	DESTRUCTIVE better & better   
Received: from S1-A.ARPA by SU-AI.ARPA with TCP; 22 May 84  11:52:15 PDT
Date: 22 May 84  1149 PDT
From: Erik Gilbert <EJG@S1-A.ARPA>
Subject: DESTRUCTIVE better & better  
To:   rpg@SU-AI.ARPA   

I tried it again with the official Mark IIA debugging stopwatch and got
0.91 seconds per iteration (same test as before) repeatably!!

;;; PERQ 6/18/84

26.09 seconds (stopwatch)

7/31/84
Benchmark       % of old time   Time    Machine used
Destruct        85%              22.15  Joe's T2
;;; PSL Numbers 7/31/84

          |KL-10b|  20-60 | 20-60 | 3600 | 20-60 | CRAY | 12Mhz| HP-UX
Benchmark |MACLSP|InterLsp|PSL 3.2| ZetaL|PSL 3.3|PSL3.2| HP200|PSL3.3
--------------------------------------------------------------------------
Destruct  |  2.16|   9.206|  2.381|  3.94|   1.85| 0.466|  4.25|  4.69
;;; LMI/Tyson 15-Aug-84  1920
		Timing 1	Timing 2
Destru		6.9 (1.05)	6.9 (1.1)

;;; LMI/Carrette 9-4-84
Test       MacroCompiled    Microcompiled
;;; PSL-3081
            |  CRAY  | BPS  400K bytes|  BPS   150K    | BPS   150K
Benchmark   | PSL 3.2| HEAP 800K bytes|  HEAP 1510K    | HEAP 1510K
---------------------------------------------------------------------------
Destruct    | 0.451  | 0.465          | 0.473          | 0.468
;;; 3600 Sept 12, 1984

		Real, no IFU	Real, IFU	Ratio	CPU, no IFU	CPU, IFU	Ratio
    Destruct	3.70		2.66		1.39	3.69		2.64		1.40